﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using DAplicaciones1;
namespace persistencia
{
    class BrUsuario : Broker
    {
        public override void agregar(Object o) 
        {
            try
            {
                Usuario usuario = (Usuario)o;
                string sentencia;
                sentencia = string.Format("Insert into Usuario values ('" + usuario.OID + "','" + usuario.Username + "','" + usuario.Password + "','" + usuario.Nombre + "','" + usuario.Cedula + "'," + usuario.Puntos + ")");
                Conexion.ejecutarse(sentencia);
            }
            catch(Exception e1)
            {
                throw new System.ArgumentException("No se pudo insertar el usuario en la Base de datos");
            }
        }
        public override void modificar(Object o) 
        {
            try
            {
                Usuario usuario = (Usuario)o;
                string sentencia;
                sentencia = string.Format("update Usuario set puntos=" + usuario.Puntos + " where usuarioOID='" + usuario.OID +  "'");
                Conexion.ejecutarse(sentencia);
            }
            catch (Exception e1)
            {
                throw new System.ArgumentException("No se pudo modificar el usuario en la Base de datos");
            }
        }

        public override void eliminar(Object o) 
        {
            try
            {
                Usuario usuario = (Usuario)o;
                string sentencia;
                sentencia = "delete from  Usuario where usuarioOID='" + usuario.OID + "'";
                Conexion.ejecutarse(sentencia);
            }
            catch (Exception e1)
            {
                throw new System.ArgumentException("No se pudo eliminar el usuario de la Base de datos");
            }
        }

        public override void traerDatos(Object o) 
        {
            


        }


        public override ArrayList traerLista(Object o)
        {
            
            ArrayList al = new ArrayList();
            Usuario us = (Usuario)o;
            string sentencia = "select * from usuario";
            Conexion.traerDatos(sentencia);
            while  (Conexion.DataR.Read())
            {
                us = new Usuario();
                us.OID = Conexion.obtenerValor("usuarioOID").ToString();
                us.Username = Conexion.obtenerValor("username").ToString();
                us.Password = Conexion.obtenerValor("password").ToString();
                us.Nombre = Conexion.obtenerValor("nombre").ToString();
                us.Cedula = Conexion.obtenerValor("cedula").ToString();
                us.Puntos = int.Parse( Conexion.obtenerValor("puntos").ToString());
                al.Add(us);
            }

            Conexion.finConsulta();

            return al;
        }

    }
}
